#pragma once
#define OK 1 
#define OVERFLOW -2
#define ERROR -1
#define TRUE 1
#define FALSE 0
#define MAXSIZE 100
typedef int Status;
typedef int TElemType;
typedef struct BiNode
{
	int data;
	struct BiNode* lct;
	struct BiNode* rct;
}BiNode,*BiTree;
typedef struct StackBiTree
{
	BiTree* Stack;
	int base;
	int top;
	int length;
}StackBiTree;

Status PreOrderTraverse(BiTree T);
Status InitTree(BiTree* T);
Status InOrderTraverse(BiTree T, StackBiTree S);
Status Pop(StackBiTree* S, BiTree* q);
Status Push(StackBiTree* S, BiTree p);
Status InitStack(StackBiTree* S);
Status StackEmpty(StackBiTree S);
